<template>
    <div class="pie" ref="pie"></div>
</template>
<script setup>
import * as echarts from 'echarts'
import { onMounted, ref, defineProps } from 'vue'
let props = defineProps({
    pieOptions: {
        typeof: 'Object',
        default: () => { }
    }
})
let pie = ref(null)
const getPie = () => {
    let myChart = echarts.init(pie.value)
    let option = {
        title: {
            text: 'Referer of a Website',
            subtext: 'Fake Data',
            left: 'center'
        },
        tooltip: {
            trigger: 'item'
        },
        legend: {
            orient: 'vertical',
            left: 'left'
        },
        series: [
            {
                name: 'Access From',
                type: 'pie',
                radius: '50%',
                data: [
                    { value: 1048, name: 'Search Engine' },
                    { value: 735, name: 'Direct' },
                    { value: 580, name: 'Email' },
                    { value: 484, name: 'Union Ads' },
                    { value: 300, name: 'Video Ads' }
                ],
                emphasis: {
                    itemStyle: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                }
            }
        ]
    };
    props.pieOptions ? myChart.setOption(props.pieOptions) : myChart.setOption(option)
    window.addEventListener('resize', () => {
        let resizeTimer = null
        clearTimeout(resizeTimer);
        resizeTimer = setTimeout(() => {
            myChart.resize();
        }, 300);
    })
}
onMounted(() => {
    getPie()
})
</script>
<style scoped>
.pie {
    width: 4rem;
    height: 1.6rem;
}
</style>